When writing data to a conventional flash data memory system, a host typically assigns unique logical addresses to sectors, clusters or other units of data within a continuous virtual address space of the memory system. The host writes data to, and reads data from, addresses within the logical address space of the memory system. The memory system then commonly maps data between the logical address space and the physical blocks or metablocks of the memory, where data is stored in fixed logical groups corresponding to ranges in the logical address space. Generally, each fixed logical group is stored in a separate physical block of the memory system. The memory system keeps track of how the logical address space is mapped into the physical memory but the host is unaware of this. The host keeps track of the addresses of its data files within the logical address space but the memory system operates without knowledge of this mapping.
In high-capacity solid state data storage systems, the number of semiconductor memory chips can be large, but only a portion of the semiconductor memory chips making up the high-capacity system is active at any time for servicing input and output requests from the host system. When such a request from a host is being serviced, the memory controller frequently has to interleave operations on host data with internal operations for managing the organization of stored data within the memory chips. These interleaved operations can reduce the overall performance of a memory system.